package com.itheima.io.objectoutputstream.demo01;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;

/**
 * 完成对象反序列化操作
 */
public class ObjectInputStreamDemo02 {

    public static void main(String[] args) throws IOException, ClassNotFoundException {

        // 创建ObjectInputStream对象
        ObjectInputStream objectInputStream = new ObjectInputStream(new FileInputStream("itheima-io-objectoutputstream\\obj.txt")) ;

        // 读取数据
        Student student = (Student)objectInputStream.readObject() ;
        System.out.println(student.getName() + "-----" + student.getAge() + "----" + student.getAddress());

        /**
         * 一个类实现类了Serializable这个接口，那么这个类就会存在一个serialVersionUID(序列化ID) ， 我们在序列化之前使用的是这个id
         * 而当我们把类做了修改，此时serialVersionUID发生了改变；而我们在进行反序列化的时候需要使用序列化文件中的id和当前这个id进行比对
         * 如果相同，才支持我们的反序列化，如果不相同，就不支持反序列化
         *
         * 针对这个问题怎么解决呢？
         * 我们只需要为这个类提供一个serialVersionUID就可以
         */

        // 释放资源
        objectInputStream.close();

    }

}
